•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
r8 vs r9
... ...
4 4
5 5
== 제 0과제 ==
6 6
scp 명령어 이용해 과제 수행에 필요한 파일들을 받아오는 과제이다.
7
8 8
scp 사용법은 아래와 같다.
9
9
[br]
10 10
># scp 원격ID@원격서버IP:파일위치 받는위치
11 11
>Ex) scp root@172.16.48.201:"/home/test/{test1[20250109].txt,test2.sh,test[3].log,testfile,}" /home/test_user
12 12
위 예시 명령어 확인 시 파일을 한번에 받아오기 위해 중괄호를 추가했고 파일명 중 대괄호가 포함되어 있어 쌍따옴표를 넣어줬다.
13 13
14
15 15
== 제 1과제 ==
16 16
2개의 파일 리스트를 비교해 같은 내용이 있는 라인을 출력하는 과제이다.
17
18 18
diff 명령어를 사용해 중복된 라인을 출력 후 파일에 넣도록 스크립트 를 작성했다.
19
19
[br]
20 20
> diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' >> "$OUTPUT_FILE"
21
명령어 확인 시 스크립트 파일에서 특수기호 "^<" 사용을 위해 따옴표를 넣어줬다.
21
명령어 확인 시 스크립트 파일에서 특수기호 "^<" 사용을 위해 따옴표를 넣어줬다.
22 22
23
24 24
== 제 2과제 ==
25 25
대용량 파일을 비교해 공통으로 존재 하는것과 하지 않는 라인을 각각 다른 파일에 저장하는 과제이다.
26
27 27
diff 명령어를 사용해 각각 다른 파일에 저장하도록 스크립트를 작성했다.
28
28
[br]
29 29
> diff "$FILE1" "$FILE2" | grep '^>' | sed 's/^> //' | awk '{print $1}' | grep -v 'filename' >> "$EXIST_FILE"
30 30
> diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' | awk -F '[,\t ]+' '{print $1}' >> "$NOT_EXIST_FILE"
31 31
위 명령어 확인 시 제 1과제 명령어와[*1 diff "$FILE1" "$FILE2" | grep '^<' | sed 's/^< //' >> "$OUTPUT_FILE"] 비슷하지만,
32 32
awk를 추가해 필요한 정보만 걸러서 저장하도록 했다.
33
34 34
중복되는 컨텐츠 리스트와 중복되지 않는 리스트를 각각 저장하도록했다.
35 35
36 36
== 제 3과제 ==
37 37
파일에 기록된 시간을 보기 편하게 변환해 별도 파일에 저장하는 과제이다.
38
38
[br]
39 39
> cat "$FILE1" | grep -v history | awk -F ',' '{print $1 "," strftime("%Y-%m-%d %H:%M:%S", $2)}' >> $EXIST_FILE
40 40
strftime 함수를 이용해 파일 내 쉼표 2번째의 있는 텍스트(날짜)를 보기편하게(yyyy-mm-dd hh-mm-ss) 변환한다.
41 41
42 42
|| AS-IS || TO-BE ||
43 43
|| 1721693207 || 2024-07-09 09:16:44 ||
44 44
45
46 46
== 제 4과제 ==
47 47
파일내 bitrate 값의 따라 각각 다른 파일의 저장하는 과제이다.
48 48
if문을 통해 6Mbps인 경우 4~6Mbps인 경우 그 외 데이터를 각각 저장 할 수 있도록 작성했다.
49 49
50
{{{ if (bitrate >= 6000000) {
50
{{{if (bitrate >= 6000000) {
51 51
print out >> "HD.txt";
52 52
hd_cnt++; hd_sum += bitrate;
53
} }}} bitrate 값 마다 분리 해주는 구문이다.
53
} }}}bitrate 값 마다 분리 해주는 구문이다.
54 54
다른 값들도 구문과 같이 각각 분리해 준다.
55 55
56 56
{{{if (hd_cnt > 0) {
57 57
res = sprintf("total : %d, bitrate avg : %.0f", hd_cnt, hd_sum / hd_cnt);
58 58
print res >> "HD.txt";
59
} }}} 파일 마지막 줄에 나눈 파일 마다의 총 파일의 개수와 평균 bitrate를 계산한 값을 출력하도록했다.
59
} }}}파일 마지막 줄에 나눈 파일 마다의 총 파일의 개수와 평균 bitrate를 계산한 값을 출력하도록했다.
60 60
다른 값들도 구문과 같이 총파일 개수와 평균 bitrate를 출력한다.
61 61
62 62
63 63
== 제 5과제 ==
64 64
입력한 용량 값 만큼의 컨텐츠 크기인 파일만 출력하는 과제이다.
65
65
[br]
66 66
> grep "^H" hitcount.txt
67 67
H로 시작하는 컨텐츠 파일만 조회 하기 위해 grep에 ^를 추가해 준다.
68
68
[br]
69 69
> current_gb = $4/1024/1024/1024;
70 70
리스트 파일에 있는 컨텐츠 별 용량을 구해 GB로 변환 해준다.
71 71
72
{{{ if (current_gb < limit) {
72
{{{if (current_gb < limit) {
73 73
printf "%s, %s, %s, %.2f GB, %s\n", $1, $2, $3, current_gb, $5
74
} }}}
75
if문을 통해 입력한 GB 값과 파일리스트의 GB변환값을 비교해 미만인 파일들을 출력해준다.
74
} }}}if문을 통해 입력한 GB 값과 파일리스트의 GB변환값을 비교해 미만인 파일들을 출력해준다.
76 75
77
78 77
== 제 6과제 ==
79 78
파일이 복사된 서버의 IP 리스트의 개수와 파일이 복사된 개수를 비교해 두 값이 다른걸 출력하는 과제이다.
80
79
[br]
81 80
> split($5, ips, " ");
82 81
> ip_cnt = length(ips);
83 82
> copy_cnt = $6;
84 83
split 함수를 이용해 IP 리스트 개수를 출력,
85 84
복사된 개수는 이미 Count되어 있어 값을 가져 올 수 있다.
86
87
{{{ if (ip_cnt != copy_cnt) {
85
[br]
86
{{{if (ip_cnt != copy_cnt) {
88 87
printf "불일치: %s (실제:%d, 기록:%d)\n", $1, ip_cnt, copy_cnt
89
} }}}
90
if문을 통해 불일치 값을 출력해 남겨준다.
88
} }}}if문을 통해 불일치 값을 출력해 남겨준다.
91 89
92
93 91
== 제 7과제 ==
94 92
EventLog에서 SeesionID로 조회해 관련로그를 출력 및 관련 컨텐츠 파일을 다른 파일에서도 조회해 출력하는 과제이다.
95
93
[br]
96 94
> grep "$sid" EventLog\[20241118\].log
97 95
SessionID를 입력받아 관련 로그를 조회한다.
98
96
[br]
99 97
> grep "$sid" EventLog\[20241118\].log | grep ".mpg" | sed -E 's/.*[[,/ ]([^,/[ ]+\.mpg).*/\1/' | sort -u
100 98
mpg 파일을 다른 파일에서도 조회 하기 위해 mpg 목록들을 출력한다.
101 99
102
103 101
== 제 8과제 ==
104 102
EventLog에서 SeesionID로 조회해 관련로그를 출력 및 관련 컨텐츠 파일을 다른 파일에서도 조회해 출력하는 과제이다.
105
103
[br]
106 104
> grep "$sid" EventLog\[20241118\].log
107 105
SessionID를 입력받아 관련 로그를 조회한다.
108
106
[br]
109 107
> grep "$sid" EventLog\[20241118\].log | grep ".mpg" | sed -E 's/.*[[,/ ]([^,/[ ]+\.mpg).*/\1/' | sort -u
110 108
mpg 파일을 다른 파일에서도 조회 하기 위해 mpg 목록들을 출력한다.
111
109
[br]
112 110
> start_ts=$(date -d "$LOG_DATE $start_input" +%s)
113 111
> Ex) inout = 10
114 112
> 변환 후 --> 10:30:00
115
116 114
입력받은 시간을 변환을 하기 위한 구문이다.
117
115
[br]
118 116
> awk -F',' -v s="$start_ts" -v e="$end_ts" '$3 >= s && $3 <= e' "$FILE"
119 117
입력한 시작 시간보다 큰 값과 입력한 종료 시간보다 작거나 같은 값을 출력한다.
120 118
... ...